using System;
using BlobNet.Base;
using BlobNet.Base.Collections;
using BlobNet.Base.Enums;
using BlobNet.Base.Storage;

namespace BlobNet.TestsCommon.UnitTests.Dummy
{
    [Serializable]
    public class DummyBlobPart : BlobPart
    {
        public DummyBlobPart(BlobDomain blobDomain, IStorageManagerFactory factory)
            : base(blobDomain, Guid.NewGuid(), factory)
        {
        }

        public DummyBlobPart(BlobDomain blobDomain)
            : base(blobDomain, Guid.NewGuid())
        {
        }

        public DummyBlobPart()
            : base(Guid.NewGuid()){}
        public DummyBlobPart(string p1)
            : base(Guid.NewGuid())
        {
            Property1 = p1;
        }

       

        public new IStorageManager CurrentStorage
        {
            get { return base.CurrentStorage; }
        }

        public IStorageManagerFactory StorageFactory
        {
            get { return base.StatusStorageFactory; }
        }

        public new BlobDomain BlobDomain
        {
            get { return base.Domain; }
        }

        public string Name { get; set; }

        public string Property1 { get; set; }


        public new void Load(StatusStorageType sourceType, BlobDomain blobDomain)
        {
            base.Load(sourceType, blobDomain);
        }


        public new void SetStatusValue<TPropertyType>(string propertyName, TPropertyType value)
        {
            base.SetStatusValue(propertyName, value);
        }

        public new TPropertyType GetStatusValue<TPropertyType>(string propertyName)
        {
            return base.GetStatusValue<TPropertyType>(propertyName);
        }
    }
}